package codingStudy.netEase2018Spring;

import java.util.Scanner;

/**
 * @author zcxv
 * @category 双核处理
 */
public class DoubleNucles {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();

		int[] task = new int[n];
		int sum = 0;
		for (int i = 0; i < n; i++) {
			int t = scanner.nextInt() >> 10;
			task[i] = t;
			sum += t;
		}
		int m = sum / 2;// 包的标准重量
		int[] sheet = new int[m + 1];
		sheet[0] = 0;
		/**
		 * 根据状态转移方程编程--判断第x个任务是否可以放进包中 1.如果重量>包重量 不放，则为sheet[x-1][y]的（前一个计算值）
		 * 2.否则-考虑放进书包 ，权衡的方式是：判断放进去后与没放比较
		 * 
		 */
		for (int x = 0; x < n; x++) {
			for (int y = m; y > 0; y--) {
				int w = task[x];// 任务的重量
				if (w <= y) {
					// 考虑放进背包
					sheet[y] = Math.max(sheet[y], sheet[y - w] + w);
				}
			}
		}
		System.out.println(Math.max(sheet[m], sum - sheet[m]) << 10);

	}
}